Microsoft Corporation developed the Media Transfer Protocol (“MTP”) to manage content on any portable device with storage. It is based upon an existing protocol, Picture Transfer Protocol (“PTP”), and may be implemented to be fully compatible with that protocol. MTP is typically used to facilitate communication between devices that connect to a personal computer (“PC”) or other host, exchange data, and then disconnect for standalone use. A secondary purpose of MTP is to enable command and control of a connected device. This includes remote control of device functionality, monitoring of device-initiated events, and reading and setting of device properties.
Simple devices can implement a minimal set of MTP functionality, which allows device vendors to develop a product with minimal investment in firmware and drivers. More advanced devices can take advantage of the full MTP feature set or extend it with vendor-specific plug-ins. For example, MTP may be used to transfer images, audio, video, playlists, or any other media object. MTP also provides direct control over device operations, including transport controls, which will be exposed through the operating system to applications. By attaching metadata to objects in a form that is accessible to devices, MTP can associate properties such as Artist, Album, Genre, and Track, in a general way to facilitate device user interface.
MTP may be used to match files that are shared between device contents and libraries on the PC to enable synchronization of data such as contact and task lists. MTP also provides a tool for optimized content description that can index devices with large storage and thousands of items very quickly to thereby initialize operations for large-capacity storage devices. References may also be used to associate one file with another, which is useful for creating playlists and associating DRM (Digital Rights Management) licenses with content.
Device manufacturers can take advantage of MTP class driver support to help reduce the need to design, develop, and support a proprietary device connectivity solution. MTP is tightly and predictably integrated with the Microsoft Windows® device architecture, which helps reduce the cost of developing third-party applications and helps to ensure compatibility with future versions of Windows. MTP is also generalized and extendable so that manufacturers can implement a common solution for multiple device models and classes through simple scaling, which helps to reduce firmware development costs and improve stability.
Since the introduction of MTP, Microsoft Corporation has also developed the Windows Portable Device (“WPD”) platform. The WPD API (Application Programming Interface) provides an abstraction of device connectivity protocols from Microsoft Windows applications to encourage a richer ecosystem of devices. While MTP is the premier WPD device connectivity protocol, device vendors with proprietary or other standards-based protocols are able to also register as a device connectivity model within the WPD framework, enabling their devices to also work with unmodified WPD aware applications. Many of the concepts in WPD inherit directly from MTP behaviors and therefore much of the functionality available to WPD applications has a direct correlation to the functionality available from devices using MTP as a connectivity protocol.
MTP has proven to be well suited to the task of representing file system objects and associated metadata in a rich and useful way. However, while MTP performs entirely satisfactorily in many applications, additional features and functionalities that utilize the protocol and maintain compatibility with it are still generally desirable.
This Background is provided to introduce a brief context for the Summary and Detailed Description that follow. This Background is not intended to be an aid in determining the scope of the claimed subject matter nor be viewed as limiting the claimed subject matter to implementations that solve any or all of the disadvantages or problems presented above.